زبان XML:

XML  مخفف زبان نشانه‌گذاری قابل گسترش می‌باشد. این زبان یک زبان نشانه‌گذاری جدید است که توسط کنسرسیوم وب برای غلبه بر محدودیتهای زبان HTML بوجود آمده است. کنسرسیوم وب سازمانی است که مسئول نگهداری استاندارهای موجود در زمینه وب می‌باشد که از مهمترین این استاندارها می‌توان به HTML اشاره کرد.

HTML  به طور قطع رایجترین زبان نشانه‌گذاری می‌باشد. بر طبق برخی گزارشات هم اکنون چندین میلیارد صفحه وب با فرمت HTML توسط محدوده وسیعی از ابزارها شامل مرورگرها، ویرایشگرها، نرم‌افزارهای پست الکترونیک و غیره پشتیبانی می‌شود. در ابتدا کاربرد وب تنها در انتشار مدارک علمی بود ولی امروزه تا حد یک رسانه ارتباطی در حد تلویزیون و کتاب رشد کرده است. برای پاسخگویی به این همه مخاطب.

HTML چندین بار گسترش یافته و برچسبهای جدیدی به آن اضافه شده است. برای مقایسه, توجه داشته باشید که اولین ویرایش HTML تنها شامل 12 برچسب بود در حالیکه جدیدترین ویرایش آن (HTML 4.0) بدون احتساب برچسبهای ویژه مرورگرهای خاص، بالغ بر 100 برچسب دارد. علاوه بر این مجموعه‌ای از زبانهای برنامه‌نویسی نیز مانند ASP, CGI, JAVA برای استفاده تعاملی از وب بوجود آمده است.

با وجود تمام قابلیتهایی که برای HTML برشمردیم این زبان دارای نقاط ضعفی است که رشد آن را با محدودیت مواجه کرده است. HTML به مجموعه‌ای با بیش از 100 برچسب تبدیل شده که آن را تبدیل به زبانی پیچیده کرده است. ترکیب برچسبها تقریباً نامحدودند و بعضاً ترکیبهایی وجود دارند که حاصل نمایش آنها بر روی مرورگرهای مختلف متفاوت است. علاوه بر این علیرغم 100 برچسب موجود در این زبان، نیازهای امروزه برچسبهای بیشتری را برای کاربردهای مختلف طلب می‌کنند.

کاربردهای تجارت الکترونیک به برچسبهایی برای توصیف کالا، قیمت ، نام، آدرس و غیره احتیاج دارند. موتورهای جستجو به برچسبهای دقیقتر برای کلمات کلیدی و توضیحات داده‌ها احتیاج دارند و کاربردهای امنیتی نیاز به برچسبهایی برای امضاهای دیجیتالی دارند. به طور کلی تمامی کاربردها برای نیازهای خود احتیاج به برچسبهای خاصی دارند که توسط HTML پشتیبانی نمی‌شود.

جدا از کاربردهایی که احتیاج به اضافه‌کردن برچسبهای جدید به HTML دارند، کاربردهایی نیز هستند که تعداد برچسب کمتر HTML یکی از نیازهای اساسی آنها می‌باشد. برطبق پیش‌بینی کنسرسیوم وب در سال 2003و 75% استفاده کنندگان از وب از وسیله‌ای غیر از کامپیوتر شخصی مانند تلفن همراه برای دسترسی به وب استفاده خواهند کرد. توان پردازش این وسایل خیلی کمتر از یک کامپیوتر شخصی می‌باشد و بنابراین چنین وسایلی قدرت پردازش زبان پیچیده‌ای مانند HTML فعلی را ندارند چه رسد به این که برای پشتیبانی کاربردهای خاص برچسبهای بیشتری هم به آن اضافه شده باشد.

مشکل دیگر HTML این است که برای قالب‌بندی یک صفحه به تعداد زیادی برچسب احتیاج است و در اکثر موارد صفحاتی مشاهده می شود که حجم علائم نشانه‌گذاری در آنها بیشتر از محتوای آنهاست که همین امر سرعت دستیابی و نمایش این صفحات را به طور قابل ملاحظه‌ای کم می‌کند.

زبان xml در سال 1997 توسط کنسرسیوم وب برای رفع محدودیتهای موجود در HTML و اضافه کردن قابلیتهای جدید بوجود آمد. تفاوت اصلی XML با HTML در این است که XML سعی دارد داده‌ها را طوری نشانه‌گذاری کند که معنای آنها حفظ شود و در حالیکه HTML  داده‌ها را طوری نشانه‌گذاری می‌کند که قابل نمایش برای مرورگرها باشد. در واقع تاکید XML بر روی معنای داده‌هاست در حالیکه تاکید HTML  بر نمایش داده می‌باشد. به منظور حفظ معنای داده‌ها XML ابر داده(MetaData ) توصیف کننده داده‌ها را نیز همراه آنها ذخیره می‌کند.

XML زیر مجموعه ساده شده‌ای از زبان SGML می‌باشد. SGML یک زبان عمومی و پیچیده برای نشانه‌گذاری داده‌هاست که در دهه 80 بوجود آمد و پدر زبانهای نشانه‌گذاری محسوب می‌شود. قابلیتهای زیاد این زبان آن را بیش از اندازه پیچیده کرده است بطوری که کنسرسیوم وب آن را بعنوان جانشین HTML  مناسب ندانسته و تصمیم گرفت زیر مجموعه ساده شده‌ای از آن را با نام XML جانشین HTML کند. XML را در واقع یک ابر زبان نامیده میشود چرا که کاربر بسته به نیازهایی که دارد می‌تواند با استفاده از آن زبان نشانه‌گذاری جدیدی برای نشانه‌گذاری داده‌هایش ایجاد کند. 

XML همچنین قادر است ساختار داده‌های ذخیره شده را نیز بهمراه معنای آنها حفظ کند. این زبان دارای هیچ برچسب از پیش تعریف شده‌‌ای نیست و تمامی برچسب‌ها برحسب نیاز توسط کاربر تعریف می‌شوند. قابلیتهای XML و اجزاء همراه آن، این زبان را به زبان قابل حمل و استاندارد برای کاربردهای مختلف تبدیل کرده است. 

 املای XML:

فایلهای XML دارای قابلیت متنی هستند طوری که می‌توان آنها را در ویرایشگرهای متنی ویرایش کرد. یک فایل در XML از دو قسمت متن و علائم نشانه گذاری تشکیل شده است که قسمت متن آن داده‌های اصلی ذخیره شده و علائم نشانه‌گذاری و ابرداده‌ توصیف کننده متن را در بر دارد. XML از یک سو با ذخیره فایلهایش در قالب متنی و استفاده از علائم نشانه‌گذاری‏ فهم معنای داده‌های ذخیره شده را برای انسان ممکن می‌سازد و از سوی دیگر با در اختیار قرار دادن این فایلها در یک قالب ساختیافته برای برنامه‌ها، پردازش آن را برای کامپیوتر ساده می‌کند.

 جزء اصلی تشکیل دهنده XML ، عنصر نام دارد که شامل نام و محتوی می‌باشد. محتوای یک عنصر بین دو علامت نشانه‌گذاری خاص با نامهای برچسب شروع و برچسب پایان محصور می‌شود. روش برچسب‌گذاری XML همانند HTML است که در اصل HTML و XML این روش را از SGML به ارث برده‌اند.

برچسب شروع شامل نام عنصر است که بین دو علامت > و < قرار گرفته و برچسب پایان دارای علامت / اضافه قبل از نام عنصر می‌باشد. برای مثال رشته زیر نمایش دهنده عنصر tel در XML می‌باشد که محتوای آن شماره تلفن 0068-21-2424512 می‌باشد.

< tel> 0098 –21-2424512</tel>

باید توجه داشت که نام عنصر در XML نسبت به حروف کوچک و بزرگ حساس می‌باشد.

هر یک از عناصر می‌توانند دارای چندین صفت باشند که هر صفت از یک زوج نام و مقدار تشکیل شده است. در مورد صفت نیز نحوه نگارش همانند HTML می‌باشد به این صورت که صفات یک عنصر در داخل برچسب شروع آن عنصر قرار می‌گیرند و بین هر صفت و مقدار آن علامت ‚=‚ قرار گرفته و مقدار صفت نیز مابین کاراکترهای مشخص کننده رشته محصور شده است. برای مثال عنصر tel در مثال قبلی می‌تواند شامل صفتی با نام Prefered  به صورت زیر باشد که محتوای آن true است.

<tel prefered = ” true” > 0098-21-2424512</tel>

 عناصری که دارای محتوا نیستند به عناصر تهی معروف می‌باشند که معمولاً به دلیل استفاده از مقادیر صفتهایشان در داخل یک فایل XML قرار گرفته‌اند. برای مثال عنصر email  در مثال زیر یک عنصر تهی می‌باشد:

<email href= ”mailto: aayat@ yahoo. Com ” ></email >

 روش دیگر برای نمایش عناصر تهی به صورت زیر می‌باشند:

<email href= ”mailto: aayat@ yahoo. Com ” />

محتوای عناصر محدود به متن نیست و عناصر می‌توانند شامل عناصر دیگر باشند که آنها نیز می‌توانند شامل متن و عناصر دیگر باشند. به عبارت دیگر یک فایلXML درختی از عناصر است که محدودیتی برعمق آن وجود ندارد و عناصر می‌توانند در این درخت بطور دلخواه تکرار شوند. برای نمونه یک فایل XML در ذیل آورده شده است :

<address-book>
<entry>
<name>John Doe</name>
<address>
<street>
34 Fountain Square
Plaza</street>
<region>OH</region>
<postal-code>45202</postal-code>
<locality>
Cincinnati
</locality>
<country>
US
</country>
</address>
<tel preferred="true">513-555-8889</tel>
<tel>513-555-7098</tel>
<email href="jdoe@yahoo.com"/>
</entry>
<entry>
<name><fname>Jack</fname><lname>Smith</lname></name>
<tel>513-555-3465</tel>
<email href="mailto:jsmith@yahoo.com"/>
</entry>
</address-book>

همانطور که در مثال فوق مشخص شده است عنصر address-book ‌ شامل دو عنصر از نوع entry  می‌باشد و عنصر entry مربوط به John Doe  دارای دو عنصر از نوع tel ‌ می‌باشد.

عنصری که در داخل عنصر دیگر قرار دارد،‌عنصر فرزند  نامیده می‌‌شود و عنصری که عنصر فرزند را در بر دارد به عنصر پدر معروف است. در مثال زیر عنصر name ‌ دارای دو فرزند با نامهای Lname , Fname  می‌باشد.

<name>
<Fname> Jack</Fname>
<Lname> Smith </Lname>
</name>

برچسبهای شروع و پایان همیشه باید با یکدیگر وجود داشته باشند و فرزندان یک عنصر همواره باید بطور کامل بین برچسبهای شروع و پایان پدر خود محصور شده باشند. به عبارت دیگر نباید برچسبهای پایان فرزند بعد از برچسب پایان پدر خود ظاهر شود. بنابراین مثال زیر نادرست می‌باشد

<name> <Fname> Jack </Fname ><Lname>smith</name></Lname>

تمام عناصر در یک فایل XMl فرزند عنصری هستند که در ریشه قرار دارد و برای مثال عنصرaddress-book  عنصر ریشه می‌‌باشد که بقیه عناصر موجود در فایل فوق فرزند این عنصر محسوب می‌شوند.

به غیر از عنصر، یک فایل XML می‌تواند دارای اجزائی مانند توضیحات، نهاد، دستورات پردازشی و غیره نیز باشد که از درجه اهمیت کمتری نسبت به عنصر برخوردار هستند و برای مقاصد جانبی مانند اضافه کردن توضیح به متن فایل XML و کاربردهای دیگر استفاده می‌شوند.

باید توجه داشت که کاراکترها در یک فایل XML مطابق استاندارد Unicode2  می‌باشند و بنابراین فایلهای XML قادر به نمایش کاراکترهای تمام زبانهای زنده دنیا می‌باشند که این یکی از مزایای XML برای کاربردهای مبادله داده می‌باشد. البته به این دلیل که کاراکترها در استاندارد Unicode  به صورت دوبایتی کد می‌شوند می‌توان برای جلوگیری از افزایش حجم فایلهای XMl آنها را با استفاده از استانداردهای دیگر مانند ISO 8859-1 , UTF-8  که اولی مخصوص کاراکترهای انگلیسی و دیگری مخصوص کاراکترهای لاتین است، نیز کد کرد .





لیست کل یادداشت های وبلاگ

OpenCube Drop Down Menu (www.opencube.com)